﻿<!--  Copyright Microsoft Corporation -->
<!--  Author: Aravind Ramarathinam (aravr@microsoft.com) -->
 <UserControl x:Class="VmroleAuthor.Views.ApplicationProfileView"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             mc:Ignorable="d" 
             d:DesignWidth="900">   
    <UserControl.Resources>      
        <Style x:Key="TextBlockStyle" TargetType="{x:Type TextBlock}">
            <Style.Triggers>
                <Trigger Property="Validation.HasError" Value="true">
                    <Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=(Validation.Errors)[0].ErrorContent}"/>
                </Trigger>
            </Style.Triggers>
        </Style>

    </UserControl.Resources>
    <Grid VerticalAlignment="Top">
        <Grid.RowDefinitions >
            <RowDefinition Height="6" />
            <RowDefinition Height="Auto" />
            <RowDefinition MinHeight="30" />
            <RowDefinition Height="Auto" />           
            <RowDefinition Height="Auto" />
            <RowDefinition MinHeight="30" />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="6"/>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="6"/>
        </Grid.ColumnDefinitions>
        
        <Grid Grid.Row="1" Grid.Column="1" VerticalAlignment="Top">
            <Grid.RowDefinitions >                              
                <RowDefinition Height="Auto" />
                <RowDefinition Height="30" />
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="6"/>
                <ColumnDefinition Width="*"/>               
            </Grid.ColumnDefinitions>
                       
            <!-- Application Profile Name-->
            <Label Grid.Row="0" Grid.Column="0" >Name</Label>
            <TextBox x:Name="AppProfileName" Grid.Row="0" Grid.Column="2" Text="{Binding Name, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{x:Null}" />
            <ContentPresenter Grid.Row="1" Grid.Column="2" Content="{Binding ElementName=AppProfileName, Path=(Validation.Errors).CurrentItem}" />
        </Grid>

        <!-- Payload-->
        <Label Grid.Row="3" Grid.Column="1" >Application Payload</Label>
        <DataGrid  x:Name="Payloads" Grid.Row="4" Grid.Column="1" AutoGenerateColumns="False" IsReadOnly="False" CanUserAddRows="False" CanUserDeleteRows="False" ItemsSource="{Binding ApplicationPayloads, ValidatesOnExceptions=True}">
            <DataGrid.RowStyle>
                <Style TargetType="DataGridRow">
                    <Setter Property="ValidationErrorTemplate" Value="{x:Null}"/>
                    <Style.Triggers>
                        <Trigger Property="IsSelected" Value="True">
                            <Setter Property="BorderBrush" Value="Blue" />
                            <Setter Property="BorderThickness" Value="2" />
                            <Setter Property="Background" Value="LightBlue" />
                            <Setter Property="Foreground" Value="Black" />
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </DataGrid.RowStyle>
            <DataGrid.CellStyle>
                <Style TargetType="DataGridCell">
                    <Style.Triggers>
                        <Trigger Property="IsSelected" Value="True">
                            <Setter Property="Background" Value="White" />
                            <Setter Property="Foreground" Value="Black" />
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </DataGrid.CellStyle>
            <DataGrid.Columns>
                <DataGridTemplateColumn Header="Id" MinWidth="350">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <TextBlock Style="{StaticResource ResourceKey=TextBlockStyle}" Text="{Binding Id, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True, NotifyOnValidationError=True}"/>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                    <DataGridTemplateColumn.CellEditingTemplate>
                        <DataTemplate>
                            <TextBox Text="{Binding Id, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True, Mode=TwoWay,  NotifyOnValidationError=True}"/>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellEditingTemplate>
                </DataGridTemplateColumn>
                <DataGridTemplateColumn Header="RelativePath" MinWidth="500">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <TextBlock Style="{StaticResource ResourceKey=TextBlockStyle}" Text="{Binding RelativePath, ValidatesOnDataErrors=True, NotifyOnValidationError=True}"/>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                    <DataGridTemplateColumn.CellEditingTemplate>
                        <DataTemplate>
                            <TextBox Text="{Binding RelativePath, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True, Mode=TwoWay,  NotifyOnValidationError=True}"/>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellEditingTemplate>
                </DataGridTemplateColumn>
            </DataGrid.Columns>
        </DataGrid>

        <!-- Insert or Delete Rows using button -->
        <StackPanel Orientation = "Horizontal" HorizontalAlignment="Left" Grid.Row="6" Grid.Column="1" >
            <Grid>
                <Grid.RowDefinitions >
                    <RowDefinition Height="6" />
                    <RowDefinition Height="Auto" />
                    <RowDefinition Height="6" />
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="10"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Button Grid.Row="1" Grid.Column="0" Command="{Binding AddApplicationPayloadCommand}" >
                    <StackPanel Orientation = "Horizontal" HorizontalAlignment="Right">
                        <TextBlock HorizontalAlignment="Center">Insert</TextBlock>
                        <Image Source="..\Img\addgreen.png" Width="20" Height="20"></Image>
                    </StackPanel>
                </Button>
                <Button Grid.Row="1" Grid.Column="2" Command="{Binding RemoveApplicationPayloadCommand}" CommandParameter="{Binding ElementName=Payloads, Path=SelectedItem}">
                    <StackPanel Orientation = "Horizontal" HorizontalAlignment="Right">
                        <TextBlock HorizontalAlignment="Center">Delete</TextBlock>
                        <Image Source="..\Img\deletered.png" Width="20" Height="20"></Image>
                    </StackPanel>
                </Button>
            </Grid>
        </StackPanel>

    </Grid>
    
    
</UserControl>
